// 1. 定义耗时任务函数
function timeConsumingTask() {
  let sum = 0;
  // 循环1000万次，模拟耗时操作
  for (let i = 0; i < 10000000; i++) {
    sum += i;
  }
  return sum; // 任务返回值（避免被编译器优化）
}

// 2. 采样任务运行时间
console.log('开始执行耗时任务，正在采样时间...');

// process.hrtime()：获取高精度时间（单位：[秒, 纳秒]），适合测量短时间任务
const startTime = process.hrtime();

// 执行耗时任务
const taskResult = timeConsumingTask();

// 计算任务耗时
const endTime = process.hrtime(startTime);
const elapsedSeconds = endTime[0]; // 秒数
const elapsedNanoseconds = endTime[1]; // 纳秒数
const elapsedMilliseconds = elapsedSeconds * 1000 + elapsedNanoseconds / 1000000; // 转为毫秒（更易读）

// 3. 输出采样结果
console.log('耗时任务执行完成，结果：sum =', taskResult);
console.log('任务运行时间采样结果：');
console.log(`- 总耗时：${elapsedSeconds} 秒 ${elapsedNanoseconds} 纳秒`);
console.log(`- 总耗时（毫秒）：${elapsedMilliseconds.toFixed(3)} ms`);

// 提示：多次运行程序，观察时间是否相同
console.log('\n提示：多次运行 "node time-sample.js"，会发现每次耗时略有差异（受CPU负载、系统资源影响）');